BITS 16
[global printInPos]			;为了将来可以在光标处打印内容
[global putchar]			;输出一个字符
[global getch]				;获得键盘输入

getch:	;这是一个函数，我们从键盘中取个字符到tempc的变量中，使用的是16号中断
	mov ah,0				;功能号
	int 16h	
	mov ah,0 ;读取字符，al存得事读到的字符，同时置ah为0，为返回时值做准备
	retf
	
putchar:			;在光标处打印一个字符到屏幕，用bios的10号中断
	pusha
	mov bp,sp
	add bp,16+4				;提供一个参数地址
	mov al,[bp]				;al是要打印的字符
	mov bh,0				;bh是页码
	mov ah,0Eh				;0Eh是中断
	int 10h
	popa
	retf
	
printInPos:					;在指定位置显示字符串
	pusha
	mov si,sp ;在我们的printInpos中我们用到了bp，所以我们使用si来为参数寻址
	add si,16+4				;首个参数的地址
	mov ax,cs
	mov ds,ax
	mov bp,[si]				;bp指向了当前串的偏移地址
	mov ax,ds				;es:bp=串地址
	mov es,ax				;置es=ds
	mov cx,[si+4]			;cs等于串长
	mov ax,1301h ;AH=13(功能号)，AL=01h串显示完成后，光标位于串的末尾
	mov bx,0007h			;bh=0表示0页，bl=07表示黑底白字
	mov dh,[si+8]			;行号为0
	mov dl,[si+12]			;列号为0
	int 10h					;使用bios的10h显示一行字符
	popa
	retf
